package 纯字符串;

public class No263丑数 {

    /**
     * 编写一个程序判断给定的数是否为丑数。
     * 丑数就是只包含质因数 2, 3, 5 的正整数。
     *
     * 示例 1:
     * 输入: 6
     * 输出: true
     * 解释: 6 = 2 × 3
     * 示例 2:
     * 输入: 8
     * 输出: true
     * 解释: 8 = 2 × 2 × 2
     * 示例 3:
     * 输入: 14
     * 输出: false
     * 解释: 14 不是丑数，因为它包含了另外一个质因数 7。
     * 说明：
     * 1 是丑数。
     * 输入不会超过 32 位有符号整数的范围: [−231,  231 − 1]。
     */

    public boolean isUgly(int n) {

        if(n==1){
            return true;
        }

        int level[]=new int[]{2,3,5,6,10,15,30};

        while (n>=1){

            int index=6;


            while (index>=0&&n%level[index]!=0){
                index--;
            }

            if(index==-1){
                return false;
            }

            n/=level[index];
            if(n==1){
                return true;
            }

        }

        return false;
    }

    public static void main(String[] args) {
        No263丑数 n=new No263丑数();
        boolean result = n.isUgly(100);
        System.out.println(result);
    }

}
